package 树;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName 二叉树的层次遍历.java
 * @Description TODO
 * @createTime 2020年10月08日 21:11:00
 * 给定一个二叉树，返回其节点值自底向上的层次遍历。 （即按从叶子节点所在层到根节点所在的层，逐层从左向右遍历）
 *
 * 例如：
 * 给定二叉树 [3,9,20,null,null,15,7],
 *
 *     3
 *    / \
 *   9  20
 *     /  \
 *    15   7
 * 返回其自底向上的层次遍历为：
 *
 * [
 *   [15,7],
 *   [9,20],
 *   [3]
 * ]
 *
 * 总结；和记录树的每层高度类似
 * 递归的参数应该就是想要记录或者操作的东西
 *
 */
public class 二叉树的层次遍历 {
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
   // class Solution {
//        List<List<Integer>> list=new ArrayList<>();
//        public List<List<Integer>> levelOrderBottom(TreeNode root) {
//            dfs(0,root);
//            Collections.reverse(list);
//            return list;
//
//        }
//
//        public void dfs(int length,TreeNode root){
//            if(root==null){
//                return;
//            }
//            if(length==list.size()){
//                list.add(new ArrayList<>());
//            }
//
//            list.get(length).add(root.val);
//            dfs(length+1,root.left);
//            dfs(length+1,root.right);
//
//        }
//    }
}
